package org.jeecg.modules.friends.friendsinfo.service;

import java.util.List;

import org.jeecg.modules.friends.friendsinfo.dto.ApplyResultDTO;
import org.jeecg.modules.friends.friendsinfo.dto.FriendsCountInfo;
import org.jeecg.modules.friends.friendsinfo.dto.FriendsInfoDTO;
import org.jeecg.modules.friends.friendsinfo.entity.FriendsInfo;
import org.jeecg.modules.friends.friendsinfo.param.FriendsListParam;
import org.jeecg.modules.friends.friendsinfo.param.MakeFriendsParam;
import org.jeecg.modules.friends.friendsinfo.param.OperateApplyParam;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * @Description: 好友信息表
 * @Author: jeecg-boot
 * @Date:   2024-05-15
 * @Version: V1.0
 */
public interface IFriendsInfoService extends IService<FriendsInfo> {

    FriendsCountInfo queryFriendsCountInfo(Long userId);

    ApplyResultDTO addFriends(MakeFriendsParam makeFriendsParam, Long fromUserId);

    Boolean operateApply(OperateApplyParam operateApplyParam, Long id);

    Page<FriendsInfoDTO> friendsList(FriendsListParam param, Long id);

    List<FriendsInfo> queryPassedList(Long id);

    void passUser(MakeFriendsParam makeFriendsParam, Long id);

    List<FriendsInfo> queryByFromUserIdAndToUserId(Long fromUserId, Long toUserId);

    void deleteByUserId(Long id);

    void resetFriendRecord(List<Long> userIdList);
    // 今天已经查看的数量
    long queryFriendsCountToday(Long userId);
}
